import Vue from 'vue';
import {
  Toast
} from 'vant';
Vue.use(Toast);
export default {
  install(Vue, Axios) {
    let axios = createInterceptor(Axios);
    Vue.prototype.axios = axios;
  }
}

function createInterceptor(Axios) {
  let axios = Axios.create({
    timeout: 20 * 1000, //请求超时时间（5秒后还未接收到数据，就需要再次发送请求）
    retry: 3, //设置全局重试请求次数（最多重试几次请求）
    retryDelay: 1000, //设置全局请求间隔
  });
  // 添加请求拦截器
  axios.interceptors.request.use(function (config) {
    // 在发送请求之前做些什么
    Toast.loading({
      message: '加载中...',
      forbidClick: true,
      duration: 0
    });
    return config;
  }, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
  });

  // 添加响应拦截器
  axios.interceptors.response.use(function (response) {
    // 对响应数据做点什么
    Toast.clear();
    return response;
  }, function (error) {
    // 对响应错误做点什么
    return Promise.reject(error);
  });
  return axios;
}